#include <windows.h>
#include <stdio.h>

#define N 20

void ClearScreen()
{
    HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
    COORD coordScreen = {0, 0};
    DWORD cCharsWritten;
    CONSOLE_SCREEN_BUFFER_INFO csbi;
    DWORD dwConSize;

    // 获取控制台缓冲区大小
    GetConsoleScreenBufferInfo(hConsole, &csbi);
    dwConSize = csbi.dwSize.X * csbi.dwSize.Y;

    // 用空格填充整个屏幕
    FillConsoleOutputCharacter(hConsole, ' ', dwConSize, coordScreen, &cCharsWritten);

    // 重置光标位置到左上角
    SetConsoleCursorPosition(hConsole, coordScreen);
}

void ExplainPrint()
{
	//上边界
	for(int i = 0; i < 2*N+2; i++)
	    printf("-");
	printf("\n");
	//打印地图
    for(int i = 0; i < N; i++)
	{
		//左边界
		printf("|");
        if(i == 1)
        {
            printf("              游戏说明                  |\n");
            continue;
        }
		if(i == 3)
		{
			printf("    贪吃蛇游戏是一款经典的小游戏，你需要|\n");
			continue;
		}
		if(i == 4)
		{
			printf("控制一条不断移动的小蛇，吃掉屏幕上出现的|\n");
			continue;
		}
		if(i == 5)
		{
			printf("食物。每吃掉一个食物，蛇的身体就会变长。|\n");
			continue;
		}
		if(i == 6)
		{ 
			printf("游戏的目标是尽可能长时间地生存下去，同时|\n");
			continue; 
		}
		if(i == 7)
		{ 
			printf("避免蛇头撞到自己的身体或屏幕边缘。      |\n");
			continue; 
		}
		if(i == 9)
		{ 
			printf("              操作说明                  |\n");
			continue; 
		}
		if(i == 11)
		{ 
			printf(" 控制:W,A,S,D移动;F1加速,F2减速,ESC暂停 |\n");
			continue; 
		}
		if(i == 13)
		{ 
			printf("              小 贴 士                  |\n");
			continue; 
		}
		if(i == 15)
		{ 
			printf("  小蛇吃到食物或者按下F1时，小蛇会加速，|\n");
			continue; 
		}
		if(i == 16)
		{ 
			printf("加速后吃食物得分会更高。如果你觉得太快，|\n");
			continue; 
		}
		if(i == 17)
		{ 
			printf("也可以按下F2减速。祝你游戏愉快！        |\n");
			continue; 
		}														
		for(int j = 0; j < N; j++)
		{
			printf("  ");
		}
		//右边界
		printf("|");
		printf("\n");
	}
	//下边界
	for(int i = 0; i < 2*N+2; i++)
	    printf("-");
	printf("\n");
}

int main()
{
    ExplainPrint();
    getchar();
    ClearScreen();
    printf("程序结束\n");
    return 0;
}
